from django.db import models


# Create your models here.
class BookInfo(models.Model):
    """
    1.定义书籍模型类
    2.数据库迁移 python manage.py makemigrations  python manage.py migrate
    3.插入数据:可以在右侧数据库Database的控制台Console里执行操作，和在终端中的效果是一样的
    """
    btitle = models.CharField(max_length=20, verbose_name='名称')
    bpub_date = models.DateField(verbose_name='发布日期')
    bread = models.IntegerField(default=0, verbose_name='阅读量')
    bcomment = models.IntegerField(default=0, verbose_name='评论量')
    # upload_to 设置保存（上传）图片的目录,这个会出现在工程目录里,当然也是可以放在static_files里面，要在settings里面进行配置
    # 因为在创建字段logo之前已经迁移过数据库，这里需要更新一下logo字段,终端命令：
    # python manage.py makemigrations cookie_session
    # python manage.py migrate cookie_session
    logo = models.ImageField(upload_to='img', verbose_name='封面', null=True)
    is_delete = models.BooleanField(default=False, verbose_name='逻辑删除')

    # 元选项
    class Meta:
        db_table = 'books1'  # 指明数据库表名
        verbose_name = '图书'  # 在admin站点中显示的名称
        verbose_name_plural = verbose_name  # 显示的复数名称

    def __str__(self):
        """定义每个数据对象的显示信息"""
        return self.btitle

    # 将方法作为列，方法名即字段名
    def pub_date(self):
        return self.bpub_date.strftime('%Y年%m月%d日')

    # 设置方法字段在admin中显示的标题
    pub_date.short_description = '发布时间'
    # 字段方法的列是不能排序的，如果需要排序需要为方法指定排序依据
    pub_date.admin_order_field = 'bpub_date'
